Skip to content

aosでPingpongプロセスを作成する

このチュートリアルでは、aosでシンプルな「ping-pong」プロセスを作成する方法を説明します。このプロセスでは、「ping」というデータを含むメッセージを受信するたびに、自動的に「pong」と返信します。これは、aosにおけるメッセージ処理とプロセス間の相互作用の基本的な例です。

ステップ1: aos CLIを開く

  • コマンドラインインターフェースを開き、aosと入力してaos環境に入ります。

ステップ2: エディタにアクセス

  • aos CLIで.editorと入力してインラインテキストエディタを開きます。ここでping-pongハンドラーコードを記述します。

ステップ3: Pingpongハンドラーを書く

  • エディタに以下のLuaコードを入力してpingpongパターンのハンドラーを追加します:
lua
Handlers.add(
  "pingpong",
  Handlers.utils.hasMatchingData("ping"),
  Handlers.utils.reply("pong")
)
<div id="step-3"></div>
  • このLuaスクリプトは3つのことを行います:
    1. "pingpong"という名前の新しいハンドラーを追加します。
    2. Handlers.utils.hasMatchingData("ping")を使用して、受信したメッセージがデータ"ping"を含むかどうかを確認します。
    3. メッセージが"ping"を含む場合、Handlers.utils.reply("pong")が自動的にデータ"pong"を持つメッセージを返します。

ステップ4: エディタを終了する

  • コードを書いたら、.doneと入力してEnterを押すことでエディタを終了し、スクリプトを実行します。

ステップ5: Pingpongプロセスをテストする

  • プロセスをテストするために、データ"ping"を含むメッセージをプロセスに送信します。次のコマンドをaos CLIに入力して行います:

    lua
    Send({ Target = ao.id, Data = "ping" })
  • プロセスは、Inboxに"pong"を含むメッセージで応答するはずです。

ステップ6: Inboxを監視する

  • Inboxを確認して"ping"メッセージと、Outboxを確認して"pong"の返信があるかどうかを確認します。
lua
Inbox[#Inbox].Data

ステップ7: 実験して観察する

  • 異なるメッセージを送信して、"ping"メッセージのみが"pong"の応答を引き起こす様子を観察してみてください。

ステップ8: プロセスを保存する(オプション)

  • 将来的にこのプロセスを使用したい場合は、ハンドラーコードをLuaファイルに保存して、aosセッションで簡単に読み込むことができます。

INFO

追加のヒント:

  • ハンドラーの効率性: ハンドラー関数のシンプルさが重要です。効率的で、正しい条件下でのみトリガーされるようにしてください。

結論

おめでとうございます!これで、aosで基本的なping-pongプロセスを作成しました。このチュートリアルは、メッセージ処理とaos環境内でのプロセスの相互作用を理解するための基礎を提供します。これらの概念に慣れてきたら、より複雑なプロセスや相互作用に拡張し、aosの可能性を探求することができます。